package com.itfreer.gis.server.vector;

import java.util.List;
import java.util.Map;

import org.geotools.geometry.jts.ReferencedEnvelope;
import org.opengis.referencing.crs.CoordinateReferenceSystem;

/**
 * 定义要素读取接口
 */
public interface FeatureDao {

	/**
	 * 获取指定切片下的要素
	 * 
	 * @param source 数据源
	 * @param extent 切片范围
	 * @return
	 * @throws @throws Exception
	 */
	List<Map<String, Object>> queryFeature(String source, String fields, String extent);

	/**
	 * 获取所查询字段
	 * 
	 * @param source 数据源
	 * @return
	 */
	String fields(String source) throws Exception;

	/**
	 * 获取要素图层的范围
	 * 
	 * @param source
	 * @return
	 * @throws Exception
	 */
	ReferencedEnvelope getBounds(String source) throws Exception;

	/**
	 * 获取坐标系统
	 * 
	 * @param source
	 * @return
	 * @throws Exception
	 */
	CoordinateReferenceSystem getCoordinateReferenceSystem(String source) throws Exception;
}
